﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PTBAC2
{
    // Phương Trình Bậc 2:
    // Có 2 nghiệm: hesoa>0 && delta>0
    // có 1 nghiệm: hesoa>0 && delta=0 hoặc hesoa=0 && hesob!=0
    // có vô số nghiệm: hesoa=0 && hesob=0 && hesoc=0
    // vô nghiệm: hesoa>0 && delta<0 hoặc hesoa=0 && hesob=0 && hesoc!=0

    public class CPTB2
    {

        //  ****************** BEGIN **  Phạm Thanh Phong - 0912338  **********************  //



        public static int VONGHIEM = 0;     // trường hợp phương trinh vô nghiệm
        public static int MOTNGHIEM = 1;    // trường hợp phương trinh có 1 nghiệm
        public static int HAINGHIEM = 2;    // trường hợp phương trinh có 2 nghiệm
        public static int VOSONGHIEM = 3;   // trường hợp phương trinh vô số nghiệm

        // hệ số a
        private float _hesoa;

        public float HeSoA
        {
            get { return _hesoa; }
            set { _hesoa = value; }
        }

        // hệ số b
        private float _hesob;

        public float HeSoB
        {
            get { return _hesob; }
            set { _hesob = value; }
        }

        // hệ số c
        private float _hesoc;

        public float HeSoC
        {
            get { return _hesoc; }
            set { _hesoc = value; }
        }

        // hệ số delta
        private double _delta;

        public double Delta
        {
            get { return _delta; }
            set { _delta = value; }
        }

        // nghiệm thứ nhất (nêu có)
        private double _nghiem1;

        public double Nghiem1
        {
            get { return _nghiem1; }
            set { _nghiem1 = value; }
        }

        // nghiệm thứ hai (nêu có)
        private double _nghiem2;

        public double Nghiem2
        {
            get { return _nghiem2; }
            set { _nghiem2 = value; }
        }


        // hàm tính hệ số delta cho phương trình bậc 2.

        public void TinhDelta()
        {
            _delta = _hesob * _hesob - 4 * _hesoa * _hesoc;
        }



        //  ****************** End **  Phạm Thanh Phong - 0912338  **********************  //







        // Kết luận trường hợp của phương trình bậc 2
        public int KetLuan()
        {
            return 0;
        }

        // Tính nghiệm trường hợp ptrình có 2 nghiệm
        public void Tinh2Nghiem()
        {
            if (_delta> 0)
            {
                _nghiem1 = (-_hesob + Math.Sqrt(_delta))/ (2 * _hesoa);
                _nghiem2 = (-_hesob - Math.Sqrt(_delta)) / (2 * _hesoa);
            }
        }

        // Tính nghiệm trường hợp ptrình có 1 nghiệm
        public void Tinh1Nghiem()
        {
            if (_delta == 0)
                _nghiem1 = _nghiem2 = -_hesob / 2 * _hesoa;
        }
    }
}
